Programmable logic devices are a type of integrated circuit that can be programmed by a designer to implement a desired custom logic function. In a typical scenario, a logic designer uses computer-aided design (CAD) tools to design a custom logic circuit. These tools use information on the hardware capabilities of a given programmable logic device to help the designer implement the custom logic circuit using multiple resources available on that given programmable logic device. To ensure that the customized programmable logic device performs satisfactorily, the computer-aided design tools optimize placement and routing of resources on the device.
To satisfy the needs of system designers, programmable logic devices are being developed that contain increasingly large amounts of circuit resources. Although such devices are able to implement complex circuit designs, these devices also tend to consume large amounts of power. Circuits that consume too much power can create thermal management problems and can adversely affect system performance.
One of the largest contributors to power consumption on an integrated circuit is dynamic power. Dynamic power is consumed when a signal toggles between high and low values. Dynamic power consumption scales with the product of load capacitance and signal switching frequency. As a result, dynamic power consumption increases as a capacitive load being driven increases and as a frequency at which a particular logic signal toggles increases.
Conventional computer-aided-design tools for designing customized circuits for programmable logic devices are generally unable to help a system designer reduce dynamic power consumption. System designers are therefore unable to make informed decisions regarding tradeoffs between dynamic power consumption, timing performance, and circuit real estate consumption.